home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.5 Complementary Applications 2004 February / SGI IRIX 6.5 Complementary Applications 2004 February.iso / dist / cde.idb / usr / dt / share / include / Xm / CascadeBP.h.z / CascadeBP.h
Encoding:
C/C++ Source or Header  |  2003-11-18  |  6.1 KB  |  193 lines

  1. /*
  2.  * CascadeBP.h
  3.  *
  4.  * Copyright 2000, Silicon Graphics, Inc.
  5.  * ALL RIGHTS RESERVED
  6.  * 
  7.  * UNPUBLISHED -- Rights reserved under the copyright laws of the United
  8.  * States.   Use of a copyright notice is precautionary only and does not
  9.  * imply publication or disclosure.
  10.  *
  11.  * U.S. GOVERNMENT RESTRICTED RIGHTS LEGEND:
  12.  * Use, duplication or disclosure by the Government is subject to restrictions
  13.  * as set forth in FAR 52.227.19(c)(2) or subparagraph (c)(1)(ii) of the Rights
  14.  * in Technical Data and Computer Software clause at DFARS 252.227-7013 and/or
  15.  * in similar or successor clauses in the FAR, or the DOD or NASA FAR
  16.  * Supplement.  Contractor/manufacturer is Silicon Graphics, Inc.,
  17.  * 2011 N. Shoreline Blvd. Mountain View, CA 94039-7311.
  18.  *
  19.  * THE CONTENT OF THIS WORK CONTAINS CONFIDENTIAL AND PROPRIETARY
  20.  * INFORMATION OF SILICON GRAPHICS, INC. ANY DUPLICATION, MODIFICATION,
  21.  * DISTRIBUTION, OR DISCLOSURE IN ANY FORM, IN WHOLE, OR IN PART, IS STRICTLY
  22.  * PROHIBITED WITHOUT THE PRIOR EXPRESS WRITTEN PERMISSION OF SILICON
  23.  * GRAPHICS, INC.
  24.  */
  25. /* 
  26.  * @OSF_COPYRIGHT@
  27.  * (c) Copyright 1990, 1991, 1992, 1993, 1994 OPEN SOFTWARE FOUNDATION, INC.
  28.  * ALL RIGHTS RESERVED
  29.  *  
  30. */ 
  31. /*
  32.  * HISTORY
  33.  * Motif Release 1.2.5
  34. */
  35. /*   $XConsortium: CascadeBP.h /main/cde1_maint/2 1995/08/18 18:53:38 drk $ */
  36. /*
  37. *  (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
  38. /*
  39. *  (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  40. #ifndef  _XmCascadeBP_h
  41. #define  _XmCascadeBP_h
  42.  
  43. #include <Xm/CascadeB.h>
  44. #include <Xm/LabelP.h>
  45.  
  46. #ifdef __cplusplus
  47. extern "C" {
  48. #endif
  49.  
  50. /* The CascadeButton instance record */
  51.  
  52. typedef    struct 
  53. {                /* resources */
  54.     XtCallbackList    activate_callback;    /* widget fired callback */
  55.     XtCallbackList    cascade_callback;    /* called when the menu is  */
  56.                         /* about to be pulled down */
  57.  
  58.     Widget        submenu;        /* the menu to pull down */
  59.     Pixmap        cascade_pixmap;        /* pixmap for the cascade */
  60.     int         map_delay;        /* time delay for posting */
  61.  
  62.                 /* internal fields */
  63.  
  64.     Boolean        armed;            /* armed flag */
  65.     XRectangle        cascade_rect;        /* location of cascade*/
  66.     XtIntervalId    timer;            /* timeout id */
  67.     Pixmap        armed_pixmap;        /* arm arrow cascade */
  68.  
  69. } XmCascadeButtonPart;
  70.  
  71.  
  72. /* Full instance record declaration */
  73.  
  74. typedef struct _XmCascadeButtonRec
  75. {
  76.     CorePart        core;
  77.     XmPrimitivePart    primitive;
  78.     XmLabelPart        label;
  79.     XmCascadeButtonPart    cascade_button;
  80. } XmCascadeButtonRec;
  81.  
  82. typedef struct _XmCascadeButtonWidgetRec/* OBSOLETE (for compatibility only).*/
  83. {
  84.     CorePart        core;
  85.     XmPrimitivePart    primitive;
  86.     XmLabelPart        label;
  87.     XmCascadeButtonPart    cascade_button;
  88. } XmCascadeButtonWidgetRec;
  89.  
  90.  
  91. /* CascadeButton class structure */
  92.  
  93. typedef struct 
  94. {
  95.     XtPointer    extension;    /* Pointer to extension record */
  96. } XmCascadeButtonClassPart;
  97.  
  98.  
  99. /* Full class record declaration for CascadeButton class */
  100.  
  101. typedef struct _XmCascadeButtonClassRec 
  102. {
  103.     CoreClassPart        core_class;
  104.     XmPrimitiveClassPart    primitive_class;
  105.     XmLabelClassPart        label_class;
  106.     XmCascadeButtonClassPart cascade_button_class;
  107. } XmCascadeButtonClassRec;
  108.  
  109.  
  110. externalref XmCascadeButtonClassRec   xmCascadeButtonClassRec;
  111.  
  112. /* Access macro definitions */
  113.  
  114. #define CB_Submenu(cb)        (((XmCascadeButtonWidget)                    \
  115.                                   cb)->cascade_button.submenu)
  116.  
  117. #define CB_ActivateCall(cb)    (((XmCascadeButtonWidget)                    \
  118.                                   cb)->cascade_button.activate_callback)
  119. #define CB_CascadeCall(cb)    (((XmCascadeButtonWidget)                    \
  120.                                   cb)->cascade_button.cascade_callback)
  121.  
  122.  
  123. #define CB_CascadePixmap(cb)    (((XmCascadeButtonWidget)                    \
  124.                                   cb)->cascade_button.cascade_pixmap)
  125. #define CB_ArmedPixmap(cb)    (((XmCascadeButtonWidget)                    \
  126.                                   cb)->cascade_button.armed_pixmap)
  127.  
  128. #define CB_Cascade_x(cb)    (((XmCascadeButtonWidget)                    \
  129.                                   cb)->cascade_button.cascade_rect.x)
  130. #define CB_Cascade_y(cb)    (((XmCascadeButtonWidget)                    \
  131.                                   cb)->cascade_button.cascade_rect.y)
  132. #define CB_Cascade_width(cb)    (((XmCascadeButtonWidget)                    \
  133.                                   cb)->cascade_button.cascade_rect.width)
  134. #define CB_Cascade_height(cb)    (((XmCascadeButtonWidget)                    \
  135.                                   cb)->cascade_button.cascade_rect.height)
  136.  
  137. #define CB_HasCascade(cb)       (((Lab_MenuType(cb) == XmMENU_PULLDOWN)  ||  \
  138.                   (Lab_MenuType(cb) == XmMENU_POPUP)) &&     \
  139.                      (CB_Submenu(cb)))
  140.  
  141.  
  142. #define XmCB_ARMED_BIT          (1 << 0)    
  143. #define XmCB_TRAVERSE_BIT     (1 << 1)
  144.  
  145. #define CB_IsArmed(cb)     (((XmCascadeButtonWidget)(cb))->cascade_button.armed \
  146.               & XmCB_ARMED_BIT)
  147. #define CB_Traversing(cb) (((XmCascadeButtonWidget)                           \
  148.                 (cb))->cascade_button.armed & XmCB_TRAVERSE_BIT)
  149.  
  150. #define CB_SetBit(byte,bit,v)  byte = (byte & (~bit)) | (v ? bit : 0)
  151.  
  152. #define CB_SetArmed(cb,v)  CB_SetBit (((XmCascadeButtonWidget)             \
  153.                        (cb))->cascade_button.armed,          \
  154.                       XmCB_ARMED_BIT, v)
  155.  
  156. #define CB_SetTraverse(cb,v)  CB_SetBit (((XmCascadeButtonWidget)         \
  157.                        (cb))->cascade_button.armed,          \
  158.                       XmCB_TRAVERSE_BIT, v)
  159.  
  160.  
  161. /********    Private Function Declarations    ********/
  162. #ifdef _NO_PROTO
  163.  
  164. extern void _XmCBHelp() ;
  165. extern void _XmCascadingPopup() ;
  166.  
  167. #else
  168.  
  169. extern void _XmCBHelp( 
  170.                         Widget w,
  171.                         XEvent *event,
  172.                         String *params,
  173.                         Cardinal *num_params) ;
  174. extern void _XmCascadingPopup( 
  175.                         Widget cb,
  176.                         XEvent *event,
  177. #if NeedWidePrototypes
  178.                         int doCascade) ;
  179. #else
  180.                         Boolean doCascade) ;
  181. #endif /* NeedWidePrototypes */
  182.  
  183. #endif /* _NO_PROTO */
  184. /********    End Private Function Declarations    ********/
  185.  
  186.  
  187. #ifdef __cplusplus
  188. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  189. #endif
  190.  
  191. #endif  /* _XmCascadeBP_h */
  192. /* DON'T ADD STUFF AFTER THIS #endif */
  193.